package uqbar.comm.netty.protocol;

import java.util.ArrayList;
import java.util.List;


public class BaseProtocol implements Protocol {

	private List<ChannelBufferFactory> factories = new ArrayList<ChannelBufferFactory>();
	boolean created = false;

	public Iterable<ChannelBufferFactory> getFactories() {
		if (this.factories.isEmpty()) {
			this.createFactories();
		}
		return this.factories;
	}

	/**
	 * Este metodo es para ser sobrescrito, es invocado automaticamente en el
	 * {@link #getFactories()} si la lista de factories estaba vacia. Si se
	 * quiere combinar con el addFactory tal vez convenga llamar en forma
	 * explícita al método. La implementación de este método está vacía
	 */
	public void createFactories() {

	}

	public void addFactory(final ChannelBufferFactory factory) {
		this.factories.add(factory);
	}

}
